Csit.Delta.ClientUtil.D8ParamValueFormatter
Форматирование VQT в D8ParamValueFormatter¶
Синтаксис строки форматирования¶
Строка форматирования состоит из текста, который может содержать токены первого уровня в фигурных скобках. Токены первого уровня могут содержать токены второго уровня в квадратных скобках. Каждый токен состоит из имени и опциональной строки форматирования токена, которая указывается через двоеточие. После имени токена второго уровня можно указать вопросительный знак - тогда при отсутствии соответствующего объекта токен будет проигнорирован.
В начале строки форматирования токена 1-го или 2-го уровней можно указать токены задания часового пояса и/или культуры в угловых скобках.
...{L1TOKEN:...[L2TOKEN:...]...[L2TOKEN:...]...}...{L1TOKEN}...
Каждый токен L1 и L2 имеет следующий формат
{L1TokenName}
{L1TokenName:TokenFormat}
или
[L2TokenName]
[L2TokenName?]
[L2TokenName:TokenFormat]
TokenFormat = [<TZ:TimezoneSpec>][<LC:CultureSpec>][FormatSpec]
Примеры:
P = {ValueUnit:0.###}, S = {StateNumber:X08}h, T = {LocalTimestamp:<TZ:USER><LC:en>hh:mm:ss dd.MM.yy}
{Value:[0], [1:0.00]?}
{Value:width=[Width:0.00], height=[Height:0.00]}
Токены¶
Токены для полей данных (ID8Vqt)¶
-
Value- только значение -
ValueXls ¹- только значение (для совместимости с xls-отчетами) -
XState- расширенное состояние (int) -
State- состояние (D8ParamValueState) -
StateNumber ¹- состояние (uint) -
Quality- качество значения (float) -
Timestamp- метка времени (DateTime) -
LocalTimestamp ¹- метка времени, сконвертированная в локальный часовой пояс пользователя (DateTime) -
UtcTimestamp ¹- метка времени в UTC (DateTime) -
BasicState ¹- базовое состояние (D8ParamValueStateBasic) -
BasicStateNumber ¹- базовое состояние (uint) -
OADATE ¹- сокращенная запись для (Value:OADATE) -
OADATE_RAW ¹- сокращенная запись для (Value:OADATE_RAW)
Токены для полей НСИ (ID8ParamInfo и ID8ParamInfoBase)¶
-
LocalId- локальный илентификатор (int) -
InstanceId- тдентификатор подсистемы (short) -
GlobalId- глобальный идентификатор (long) -
SID- строковый идентификатор -
ParamType- тип параметра (D8ParamType) -
Subtype- подтип параметра (D8ParamSubtype) -
Name- имя -
ShortName- краткое имя -
AdditionalName- дополнительное имя -
AKS- код -
Interval- интервал значений (D8TimeInterval) -
Step- шаг значений (D8TimeStep) -
Options- флаги параметра (D8ParamOptions) -
Units- единицы измерения -
AggregatedUnits- единицы измерения после агрегирования -
AggregationCoef- коэффициент агрегирования -
ScaleName- название шкалы -
ScaleStates- перечень пар значение/имя всех дискретных состояний -
Min- минимум шкалы (double) -
Max- максиму шкалы (double) -
ValidLow- низ достоверности (double) -
ValidHigh- верх достоверности (double) -
RangeUp1- первая уставка вверх (double) -
RangeUp2- вторая уставка вверх (double) -
RangeDown1- первая уставка вниз (double) -
RangeDown2- вторая уставка вниз (double) -
DeltaSave- апертура архивирования (double) -
DeltaSend- апертура пересылки (double) -
DeviceName- название устройства -
DeviceId- идентификатор устройства (int) -
DeviceChannel ¹- канал устройства (string) -
GroupName- название группы -
GroupId- идентификатор группы (int)
Остальные токены¶
-
ValueUnits ¹- значение и единицы измерения
¹ - название не соответствует имени в коде
Особенности форматирования для Value¶
В строке форматирования для значения параметра (токен Value) можно указать специальные символы:
OADATE
Означает, что аналоговое значение параметра нужно использовать, чтобы получить значение даты и времени в формате OLE.
Далее это значение конвертируется из UTC в часовой пояс, указанный в строке форматирования (<TZ>).
Если часовой пояс не указан, то по умолчанию используется часовой пояс пользователя.OADATE_RAW
То же, чтоOADATE, но по умолчанию используется часовой пояс UTC.
Например:
{Value:OADATE}
{Value:OADATE:dd.MM.yy HH:mm:ss}
{Value:OADATE:<TZ:+3d>dd.MM.yy HH:mm:ss}
{Value:OADATE_RAW}
Кроме того OADATE и OADATE_RAW можно использовать как имя токена строки форматирования.